package day05;

/**
 * @author yzg
 * @desc TODO
 * @date 2025/4/14
 */

/**
 * 1.声明
 * 语法：[访问权限修饰符public]  void  方法名(){ //方法体 }
 * 特点：没有形式参数 ， 没有返回值
 * 场景：游戏初始化界面，提示的方法等  类似于Scanner中的void close()
 * 调用：类的对象.方法名();
 */


/**
 * 2.声明
 * 语法：[访问权限修饰符public]  void  方法名(数据类型  形参名1 , 数据类型  形参名2){ //方法体 }
 * 特点：有形式列表 ， 没有返回值
 * 场景：设置值的方法  类似于void setXxx(形参)
 * 调用：类的对象.方法名(形参列表);
 */


/**
 * 3.声明
 * 语法：[访问权限修饰符public]  返回值的数据类型  方法名(数据类型  形参名1 , 数据类型  形参名2){ //方法体 }
 * 特点：有形式参数 ， 有返回值
 * 场景：功能性的方法  类似于Random中的int nextInt(int bound)获取随机整数
 * 调用：返回值 = 类的对象.方法名(形参列表);
 * @param d1
 * @param d2
 * @return  double数据
 */


/**
 * 4.声明  无参  有返回值的方法
 * 语法：[访问权限修饰符public]  返回值的数据类型  方法名(){ //方法体 }
 * 特点：没有形式参数  ， 有返回值
 * 场景：获取值的方法  类似于Scanner类中int nextInt()获取键盘输入的值、getXxx()
 * 调用：返回值 = 类的对象.方法名();
 * @return  int整型数据
 */


/**
 * 5.声明 静态的方法
 * 语法：[访问权限修饰符public] static 返回值的数据类型  方法名(){ //方法体 }
 * 特点：方法的修饰符 static
 * 场景：例如：Arrays数组的方法，Math数学类的方法   工具类的方法
 * 调用：类名.方法名();
 */

public class MethodDefine {
    public static void main(String[] args) {
        MethodDefine method = new MethodDefine();
        method.test1();
        method.test2(1,2);
        System.out.println(method.test3(1.0,2.0));
        System.out.println(method.test4());
        test5();//或者MethodDefine.test5()
    }

    public void test1(){
        System.out.println("hello");
    }

    public void test2(int a, int b){
        System.out.println(a+b);
    }

    public double test3(double a, double b){
        return a+b;
    }

    public String test4(){
        return "hello";
    }

    public static  void test5(){
        System.out.println("Hello World");
    }
}
